--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit 7503737a96cb04eb221781403128ccee1dae01eb
Parents : f3107f4
Author : Mark Qvist <mark@unsigned.io>
Date : 2022-10-09T00:09:26+02:00
Improved conversations and messages dialog boxes
Changes
4 files changed, 52 insertions(+), 46 deletions(-)
Diff
diff --git a/sbapp/ui/announces.py b/sbapp/ui/announces.py
index de93b9a2..c244e750 100644
--- a/sbapp/ui/announces.py
+++ b/sbapp/ui/announces.py
@@ -10,7 +10,7 @@ from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.clock import Clock
-from kivymd.uix.button import MDFlatButton, MDRectangleFlatButton
+from kivymd.uix.button import MDRectangleFlatButton
from kivymd.uix.dialog import MDDialog
if RNS.vendor.platformutils.get_platform() == "android":
@@ -84,9 +84,7 @@ class Announces():
def gen_info(ts, dest, name, dtype):
def x(sender):
- yes_button = MDFlatButton(
- text="OK",
- )
+ yes_button = MDRectangleFlatButton(text="OK",font_size=sp(18))
if dtype == "lxmf.delivery":
ad_text = "[size=22dp]LXMF Peer[/size]\n\nReceived: "+ts+"\nAnnounced Name: "+name+"\nAddress: "+RNS.prettyhexrep(dest)
@@ -209,6 +207,8 @@ class Announces():
width_mult=4,
elevation=1,
radius=dp(3),
+ opening_transition="linear",
+ opening_time=0.0,
)
def callback_factory(ref):
diff --git a/sbapp/ui/conversations.py b/sbapp/ui/conversations.py
index 9d2afa66..8a24607a 100644
--- a/sbapp/ui/conversations.py
+++ b/sbapp/ui/conversations.py
@@ -1,15 +1,16 @@
import RNS
import time
-from kivy.metrics import dp
+from kivy.metrics import dp,sp
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import StringProperty, BooleanProperty
from kivymd.uix.list import MDList, IconLeftWidget, IconRightWidget, OneLineAvatarIconListItem
from kivymd.uix.menu import MDDropdownMenu
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
+from kivy.clock import Clock
-from kivymd.uix.button import MDFlatButton
+from kivymd.uix.button import MDRectangleFlatButton
from kivymd.uix.dialog import MDDialog
@@ -23,6 +24,7 @@ class MsgSync(BoxLayout):
class ConvSettings(BoxLayout):
disp_name = StringProperty()
+ context_dest = StringProperty()
trusted = BooleanProperty()
@@ -91,17 +93,12 @@ class Conversations():
disp_name = self.app.sideband.raw_display_name(dest)
is_trusted = self.app.sideband.is_trusted(dest)
- yes_button = MDFlatButton(
- text="Save",
- font_size=dp(20),
- )
- no_button = MDFlatButton(
- text="Cancel",
- font_size=dp(20),
- )
- dialog_content = ConvSettings(disp_name=disp_name, trusted=is_trusted)
+ yes_button = MDRectangleFlatButton(text="Save",font_size=sp(18), theme_text_color="Custom", line_color=self.app.color_accept, text_color=self.app.color_accept)
+ no_button = MDRectangleFlatButton(text="Cancel",font_size=sp(18))
+ dialog_content = ConvSettings(disp_name=disp_name, context_dest=RNS.hexrep(dest, delimit=False), trusted=is_trusted)
dialog = MDDialog(
- title="Conversation with "+RNS.prettyhexrep(dest),
+ title="Edit Conversation",
+ text= "With "+RNS.prettyhexrep(dest),
type="custom",
content_cls=dialog_content,
buttons=[ yes_button, no_button ],
@@ -126,7 +123,10 @@ class Conversations():
RNS.log("Error while saving conversation settings: "+str(e), RNS.LOG_ERROR)
dialog.dismiss()
- self.reload()
+
+ def cb(dt):
+ self.reload()
+ Clock.schedule_once(cb, 0.2)
def dl_no(s):
dialog.dismiss()
@@ -143,14 +143,11 @@ class Conversations():
def gen_clear(dest, item):
def x():
dest = self.conversation_dropdown.context_dest
- yes_button = MDFlatButton(
- text="Yes",
- )
- no_button = MDFlatButton(
- text="No",
- )
+ yes_button = MDRectangleFlatButton(text="Yes",font_size=sp(18), theme_text_color="Custom", line_color=self.app.color_reject, text_color=self.app.color_reject)
+ no_button = MDRectangleFlatButton(text="No",font_size=sp(18))
+
dialog = MDDialog(
- text="Clear all messages in conversation?",
+ title="Clear all messages in conversation?",
buttons=[ yes_button, no_button ],
# elevation=0,
)
@@ -168,21 +165,19 @@ class Conversations():
def gen_del(dest, item):
def x():
- yes_button = MDFlatButton(
- text="Yes",
- )
- no_button = MDFlatButton(
- text="No",
- )
+ yes_button = MDRectangleFlatButton(text="Yes",font_size=sp(18), theme_text_color="Custom", line_color=self.app.color_reject, text_color=self.app.color_reject)
+ no_button = MDRectangleFlatButton(text="No",font_size=sp(18))
dialog = MDDialog(
- text="Delete conversation?",
+ title="Delete conversation?",
buttons=[ yes_button, no_button ],
# elevation=0,
)
def dl_yes(s):
dialog.dismiss()
self.app.sideband.delete_conversation(self.conversation_dropdown.context_dest)
- self.reload()
+ def cb(dt):
+ self.reload()
+ Clock.schedule_once(cb, 0.2)
def dl_no(s):
dialog.dismiss()
diff --git a/sbapp/ui/layouts.py b/sbapp/ui/layouts.py
index 19734a5b..ccc96ce4 100644
--- a/sbapp/ui/layouts.py
+++ b/sbapp/ui/layouts.py
@@ -1132,21 +1132,29 @@ MDNavigationLayout:
<ConvSettings>
orientation: "vertical"
- spacing: "24dp"
+ spacing: "16dp"
size_hint_y: None
- height: dp(148)
+ padding: [0, 0, 0, dp(8)]
+ height: self.minimum_height
+
+ MDTextField:
+ id: dest_field
+ hint_text: "Address"
+ text: root.context_dest
+ # disabled: True
+ font_size: dp(18)
MDTextField:
id: name_field
hint_text: "Name"
text: root.disp_name
- font_size: dp(24)
+ font_size: dp(18)
MDBoxLayout:
orientation: "horizontal"
# spacing: "24dp"
size_hint_y: None
- padding: [0,0,dp(24),0]
+ padding: [0,0,dp(8),0]
height: dp(48)
MDLabel:
id: trusted_switch_label
@@ -1155,6 +1163,7 @@ MDNavigationLayout:
MDSwitch:
id: trusted_switch
+ pos_hint: {"center_y": 0.43}
active: root.trusted
<NewConv>
diff --git a/sbapp/ui/messages.py b/sbapp/ui/messages.py
index 63cf6319..5c2b4a36 100644
--- a/sbapp/ui/messages.py
+++ b/sbapp/ui/messages.py
@@ -2,7 +2,7 @@ import time
import RNS
import LXMF
-from kivy.metrics import dp
+from kivy.metrics import dp,sp
from kivy.core.clipboard import Clipboard
from kivymd.uix.card import MDCard
from kivymd.uix.menu import MDDropdownMenu
@@ -11,10 +11,12 @@ from kivymd.uix.behaviors import CommonElevationBehavior
from kivy.properties import StringProperty, BooleanProperty
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
+from kivy.clock import Clock
-from kivymd.uix.button import MDFlatButton
+from kivymd.uix.button import MDRectangleFlatButton
from kivymd.uix.dialog import MDDialog
+
if RNS.vendor.platformutils.get_platform() == "android":
from ui.helpers import ts_format, mdc
from ui.helpers import color_received, color_delivered, color_propagated, color_failed, color_unknown, intensity_msgs_dark, intensity_msgs_light
@@ -160,21 +162,21 @@ class Messages():
def gen_del(mhash, item):
def x():
- yes_button = MDFlatButton(
- text="Yes",
- )
- no_button = MDFlatButton(
- text="No",
- )
+ yes_button = MDRectangleFlatButton(text="Yes",font_size=sp(18), theme_text_color="Custom", line_color=self.app.color_reject, text_color=self.app.color_reject)
+ no_button = MDRectangleFlatButton(text="No",font_size=sp(18))
dialog = MDDialog(
- text="Delete message?",
+ title="Delete message?",
buttons=[ yes_button, no_button ],
# elevation=0,
)
def dl_yes(s):
dialog.dismiss()
self.app.sideband.delete_message(mhash)
- self.reload()
+
+ def cb(dt):
+ self.reload()
+ Clock.schedule_once(cb, 0.2)
+
def dl_no(s):
dialog.dismiss()
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────